package com.xblog.chatbox.vlmp.core;


import com.xblog.chatbox.vlmp.conversation.Conversation;
import com.xblog.chatbox.vlmp.conversation.ConversationPayloadFeedbacks;
import com.xblog.chatbox.vlmp.core.spec.CallResponseSpec;
import com.xblog.chatbox.vlmp.core.spec.StreamResponseSpec;
import com.xiaowu.xblog.constant.UserContext;
import org.apache.tomcat.util.http.parser.Authorization;

/**
 * @description: 统一定义智能体调用行为客户端
 * @author: xiaowu
 * @time: 2025/8/6 22:44
 */
public interface VlmpAgentClient {


    /**
     * 流式请求
     *
     * @param authorization 权限信息
     * @param request       会话消息
     */
    StreamResponseSpec stream(UserContext authorization, VlmpAgentRequest request);


    /**
     * 非流式请求
     *
     * @param userContext 权限信息
     * @param agentRequest       会话消息
     */
    CallResponseSpec call(UserContext userContext, VlmpAgentRequest agentRequest);

    /**
     * 删除会话消息
     *
     * @param context 权限信息
     * @param conversation  会话ID
     */
    void delete(UserContext context, Conversation conversation);

    /**
     * 重命名会话消息
     *
     * @param context 权限信息
     * @param conversation  会话信息
     */
    void rename(UserContext context, Conversation conversation);


    /**
     * 提交反馈
     *
     * @param authorization 权限信息
     * @param feedbacks     反馈信息
     */
    void feedbacks(UserContext authorization, ConversationPayloadFeedbacks feedbacks);
}
